MailServer=mail.intern.crytek.de
cc_email=martins@crytek.de;timur@crytek.de;sergey@crytek.de
imagecompressor=CTsquish

brdfGlossScale=16
brdfGlossBias=0

; D3D11 supports filtering across cubemap faces
cm_edgefixup=0

[_platform]
name=pc
bigendian=0
pointersize=8

[_platform]
name=ps4,orbis
bigendian=0
pointersize=8

[_platform]
name=xboxone,durango
bigendian=0
pointersize=8

[_platform]
name=wiiu
bigendian=1
pointersize=4

; high quality diffuse textures
[Diffuse_highQ]
pixelformat=DXT1
powof2=1
mipmaps=1
srgb=1

; CIG BEGIN - Adding BC7 exposure for diffuse textures. 
; higher quality diffuse textures
[Diffuse_higherQ]
pixelformat=BC7
powof2=1
mipmaps=1
srgb=1
; CIG END

; CIG BEGIN - Adding wrinkle mask texture (no SRGB, DXT5)
[WrinkleMask]
pixelformat=DXT5
powof2=1
mipmaps=1
srgb=0
; CIG END

; low quality diffuse textures
[Diffuse_lowQ]
pixelformat=DXT1
powof2=1
mipmaps=1
srgb=1

; diffuse colour textures with alpha channel for alphatest
[DiffuseWithAlphaTest_highQ]
pixelformat=DXT1a
powof2=1
mipmaps=1
srgb=1

; diffuse colour textures with alpha channel for alphablend
[DiffuseWithAlpha_highQ]
pixelformat=DXT5
powof2=1
mipmaps=1
srgb=1

; high quality specular textures
[Specular_highQ]
pixelformat=DXT1
minalpha:pc=10
powof2=1
mipmaps=1
srgb=1
filemasks=*_spec*

; CIG BEGIN - Adding BC7 exposure for specular textures. 
; higher quality specular textures
[Specular_higherQ]
pixelformat=BC7
minalpha:pc=10
powof2=1
mipmaps=1
srgb=1
filemasks=*_spec*
; CIG END

; high quality specular textures
; same as Specular_highQ, but has srgb=0
[SpecularLinear_highQ]
pixelformat=DXT1
minalpha:pc=10
powof2=1
mipmaps=1
srgb=0
filemasks=*_spec*

; low quality specular textures
; minalpha to limit per pixel pow factor adjustment - prevents NAN in shader
[Specular_lowQ]
pixelformat=DXT1
minalpha:pc=10
powof2=1
mipmaps=1
srgb=1
filemasks=*_spec*

; minalpha to limit per pixel pow factor adjustment - prevents NAN in shader
[SpecularWithGlossInAlpha_highQ]
pixelformat=DXT5
minalpha=10
powof2=1
mipmaps=1
srgb=1
filemasks=*_spec*

; high quality normal map textures (3dc)
[Normalmap_highQ]
pixelformat=3DC
powof2=1
mipnormalize=1
mipmaps=1
srgb=0
mipgentype=average
filemasks=*_ddn*

; high quality normal map textures (3dc) with gloss in alpha
[NormalmapWithGlossInAlpha_highQ]
pixelformat=3DC
pixelformatalpha=3DCp
powof2=1
mipnormalize=1
mipmaps=1
mipgentype=average
srgb=0
glossfromnormals=1
glossfilterstrength=0.3
filemasks=*_ddna*

; low quality normal map textures (can be less than 3dc)
[Normalmap_lowQ]
pixelformat=3DC
powof2=1
mipnormalize=1
mipmaps=1
srgb=0
mipgentype=average
filemasks=*_ddn*

; converts greyscale texture to normalmap, high quality normal map textures (3dc)
[Bump2Normalmap_highQ]
pixelformat=3DC
bumptype=1
powof2=1
mipnormalize=1
mipmaps=1
mipgentype=average
srgb=0

; converts greyscale texture to normalmap, low quality normal map textures (can be less than 3dc)
[Bump2Normalmap_lowQ]
pixelformat=DXT1
bumptype=1
powof2=1
mipnormalize=1
mipmaps=1
mipgentype=average
srgb=0

; high quality skybox textures (uncompressed)
[Skybox_highQ]
pixelformat=BC7
autooptimize=0
powof2=1
mipmaps=1
srgb=1

; compressed HDR skybox texture
[SkyboxHDR]
pixelformat=BC6UH
dynscale=0
discardalpha=1
powof2=1
mipmaps=1
srgb=0

; user interface texture (uncompressed), supress engine reduce on loading
; no mipmaps as texture can be non powerof2 and RC cannot generate mips
[UserInterface]
pixelformat=X8R8G8B8
autooptimize=0
reduce=-1
mipmaps=0
srgb=1
powof2=0
ser=1

; user interface texture (compressed), supress engine reduce on loading
; no mipmaps as texture can be non powerof2 and RC cannot generate mips
[UserInterface_Compressed]
pixelformat=DXT1
pixelformat:pc=X8R8G8B8
pixelformat:wiiu=X8R8G8B8
previewformat:pc=DXT1
autooptimize=0
reduce=-1
mipmaps=0
srgb=1
powof2=0
ser=1

; uncompressed texture, avoid
[Uncompressed]
pixelformat=X8R8G8B8
powof2=1
mipmaps=1
srgb=1

; LoadingScreen, can be non power of 2, high quality
; mipmaps to display lower mips for low spec computers
[LoadingScreen]
pixelformat=X8R8G8B8
powof2=0
autooptimize=0
mipmaps=0
srgb=1

; usually per level 
[Minimap]
pixelformat=DXT1
ser=1
powof2=1
autooptimize=0
reduce=pc:0,xboxone:1,ps4:1,wiiu:2
mipmaps=1
srgb=1

; decal property is propagated to engine to define proper border clamp behaviour on alpha test
; mipbordercolor=AARRGGBB
[Diffuse_Decal]
pixelformat=DXT5
powof2=1
mipbordercolor=00000000
mipmaps=1
srgb=1
decal=1

; aka light cooky texture
; it's better to avoid texture compression because light beams look too bad with it
; tiled shading requires light projector texture to be 512x512 DXT1 (no alpha!)
[LightProjector]
maxtexturesize=512
ser=1
pixelformat=DXT1
powof2=1
mipmaps=1
srgb=1
discardalpha=1

; supress engine reduce on loading, todo: special border mip handling - disabled streaming
[MuzzleFlash]
pixelformat=DXT1
powof2=1
mipmaps=1
srgb=1
ser=1

; particle, todo: special border mip handling - disabled streaming
[ParticleDiffuse]
pixelformat=DXT1
detectL8:pc=1
powof2=1
mipmaps=1
srgb=1

[ParticleDiffuseStreamable]
pixelformat=DXT1
detectL8:pc=1
powof2=1
mipmaps=1
srgb=1
numstreamablemips=1
numstreamablemips:pc=0

; detail map, includes normal and optional alpha information
[DetailBumpMap]
pixelformat=3DC
detectL8:pc=1
powof2=1
mipmaps=1
mipgentype=average
mipnormalize=1
srgb=0

; automatic high pass (removes low frequency colors, allows to add details to any colored background) sRGB disabled
[TerrainDiffuse]
pixelformat=DXT1
powof2=1
highpass=5
mipmaps=1
srgb=0

; already high passed in photoshop (like all in Crysis) sRGB disabled
[TerrainDiffuseHighPassed]
pixelformat=DXT1
powof2=1
mipmaps=1
srgb=0

; high quality HDR reflection textures in RGBK format
[HDRReflectionsRGBK_highQ]
pixelformat=A8R8G8B8
rgbk=2
powof2=1
mipmaps=1
srgb=0
filemasks=*_cm*,*_cubemap*

; high quality HDR reflection textures (usually in BC6 format)
; tiled shading requires cubemap to be 256x256 BC6UH
[HDRCubemap_highQ]
maxtexturesize=256
ser=1
pixelformat=BC6UH
discardalpha=1
cm=1
cm_ftype=gaussian
cm_fangle=0
cm_fmipangle=7
cm_fmipslope=2.3
cm_edgefixup=16
cm_diff=1
cm_diffpreset=HDRDiffuseCubemap_highQ
powof2=1
mipmaps=1
srgb=0
ms=0
autooptimize=0
reduce=pc:0,xboxone:0,ps4:0,wiiu:1
filemasks=*_cm*,*_cubemap*

; high quality HDR diffuse illumination textures (usually in BC6 format)
; tiled shading requires cubemap to be 32x32 BC6UH
[HDRDiffuseCubemap_highQ]
maxtexturesize=32
ser=1
pixelformat=BC6UH
discardalpha=1
cm=1
cm_ftype=cosine
cm_fangle=180
cm_fmipangle=0
cm_fmipslope=0
cm_edgefixup=16
cm_diff=0
powof2=1
mipmaps=0
srgb=0
ms=0
filemasks=*_cm*,*_cubemap*

; high quality HDR reflection textures in RGBK format
; TODO: Just for backwards compatibility, remove ASAP
[HDRCubemapRGBK_highQ]
maxtexturesize=256
ser=1
pixelformat=BC6UH
discardalpha=1
cm=1
cm_ftype=gaussian
cm_fangle=0
cm_fmipangle=7
cm_fmipslope=2.3
cm_edgefixup=16
cm_diff=1
cm_diffpreset=HDRDiffuseCubemap_highQ
powof2=1
mipmaps=1
srgb=0
ms=0
autooptimize=0
reduce=pc:0,xboxone:0,ps4:0,wiiu:1
filemasks=*_cm*,*_cubemap*

; high quality HDR diffuse illumination textures in RGBK format
; TODO: Just for backwards compatibility, remove ASAP
[HDRDiffuseCubemapRGBK_highQ]
maxtexturesize=32
ser=1
pixelformat=BC6UH
discardalpha=1
cm=1
cm_ftype=cosine
cm_fangle=180
cm_fmipangle=0
cm_fmipslope=0
cm_edgefixup=16
cm_diff=0
powof2=1
mipmaps=0
srgb=0
ms=0
filemasks=*_cm*,*_cubemap*

[SF_Image]
pixelformat=DXT1
autooptimize=0
powof2=1
mipmaps=0
srgb=0
ser=1

[SF_Image_nonpower2]
pixelformat=DXT1
autooptimize=0
powof2=0
mipmaps=0
srgb=0
ser=1

[SF_Gradient]
pixelformat=A8R8G8B8
autooptimize=0
reduce=-1
powof2=1
mipmaps=0
srgb=0
ser=1

[SF_Font]
pixelformat=A8R8G8B8
autooptimize=0
reduce=-1
powof2=1
mipmaps=0
srgb=0
ser=1

[ColorChart]
pixelformat=X8R8G8B8
colorchart=1
powof2=0
mipmaps=0
reduce=0
srgb=0
previewstretched=0
autooptimize=0
filemasks=*_cch*

[ReferenceImage]
pixelformat=A8R8G8B8
autooptimize=0
reduce=-1
powof2=0
mipmaps=0
srgb=1

; detail textures
[DetailTexture]
pixelformat=DXT1
powof2=1
mipmaps=1
srgb=1
filemasks=*_detail*

; low resolution, high quality HDR reflection textures, not DXT compressed
[HDRCubemap_highQ]
pixelformat=A8R8G8B8
rgbk=2
cm=1
cm_ftype=gaussian
cm_fangle=0
cm_fmipangle=4
cm_fmipslope=3
cm_edgefixup=16
powof2=1
mipmaps=1
srgb=0
ms=0
filemasks=*_cm*,*_cubemap*

; merged decals - each color channel contains a decal
[MergedDecal]
pixelformat=DXT5
powof2=1
mipmaps=1
srgb=1

; no texture compression on gradients since we need precise colors - dxt compression destroys this
; plz do not enable srgb - we want exact color on this case (input for fetching is what is linear)
[Gradient]
pixelformat=A8R8G8B8
detectL8:pc=1
powof2=1
mipmaps=0
srgb=0

; high quality diffuse textures nomips
[Diffuse_highQ_nomips]
pixelformat=DXT1
powof2=1
mipmaps=0
srgb=1

; high quality specular textures nomips
[Specular_highQ_nomips]
pixelformat=DXT1
minalpha:pc=10
powof2=1
mipmaps=0
srgb=1
filemasks=*_spec*

; high quality normal map textures (3dc) nomips
[Normalmap_highQ_nomips]
pixelformat=3DC
powof2=1
mipnormalize=1
mipmaps=0
mipgentype=average
srgb=0
filemasks=*_ddn*

; input image: alpha channel - displacement values, color channels - irrelevant (see 'swizzle' below)
[DisplacementMap]
pixelformat=3DCp
swizzle=aaaa
powof2=1
mipmaps=1
mipgentype=average
srgb=0
filemasks=*_displ*

[OpacityMap]
pixelformat=3DCp
powof2=1
mipmaps=1
srgb=0

; Merged detail maps. Contains in each channel: r:Detail diffuse, ga: Normal.xy, b: Detail gloss. Normal component encoded
; in alpha channel for better precision.
[MergedDetailMap]
pixelformat=DXT5
powof2=1
mipmaps=1
mipgentype=average
srgb=0
filemasks=*_detail*

; Merged detail maps. Contains in each channel: r:Detail diffuse, ga: Normal.xy, b: Detail gloss. Uncompressed format
[MergedDetailMap_HighQ]
pixelformat=A8R8G8B8
powof2=1
mipmaps=1
mipgentype=average
srgb=0
filemasks=*_detail*

[ReferenceImage_NoSrgb]
pixelformat=A8R8G8B8
autooptimize=0
reduce=-1
powof2=0
mipmaps=0
srgb=0
ser=1

[LensOptics]
pixelformat=DXT1
autooptimize=0
powof2=0
mipmaps=0
srgb=1

[LUT_RGBA8]
pixelformat=A8R8G8B8
powof2=0
mipmaps=0
srgb=0

; CIG BEGIN
; Confetti Tim Martin - cube map format for nebula particle textures
[CubemapDiffuse_withAlpha]
pixelformat=DXT5
cm=1
cm_ftype=gaussian
cm_fangle=0
cm_fmipangle=4
cm_fmipslope=3
cm_edgefixup=16
powof2=1
mipmaps=1
srgb=0
ms=0
autooptimize=0
reduce=pc:0,x360:1,ps3:1
filemasks=*_cm*,*_cubemap*
; CIG END

; CIG BEGIN Okka Kyaw
[SignedDistanceField]
pixelformat=X8R8G8B8
powof2=1
mipmaps=1
mipgentype=gauss
srgb=0
distance_transform=1
analyze_and_suggest=0
; CIG END
